<?php

namespace App\Admin\Forms\Collecter;

use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;

class ImportCollectJsonForm extends Form implements LazyRenderable
{
    use LazyWidget;

    public function handle(array $input)
    {
        $file_path = public_path('storage/'.$input['file']);
        if(!file_exists($file_path)){
            return $this->response()->warning('未导入文件');
        }
        $file_type = (int)($input['file_type']);
        if(!in_array($file_type, [0, 1, 2])){
            return $this->response()->warning('文件类型不合法！');
        }
        $key_content = $input['key_content'];
        $key_author_url = $input['key_author_url'];
        if(_empty_($key_content, true) || _empty_($key_author_url, true)){
            return $this->response()->warning('内容字段或作者链接字段为空，这两个为必选字段');
        }
        $key_title = $input['key_title'];

        if($file_type === 0 || $file_type === 1 ){
            $key_content = (int)$key_content;
            $key_author_url = (int)$key_author_url;
            $key_title = (int)$key_title;
            if(_empty_($key_content) && _empty_($key_author_url)){
                return $this->response()->warning('内容字段或作者链接字段配置不正确，txt，csv文件应配置为数字');
            }
        }

        $str = file_get_contents($file_path);
        dd($str);
    }

    public function form()
    {
        $this->radio('file_type', '文件类型')->required()->options([1=>'csv', 2=>'json']);
        $this->html(function () {
            return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">以下是字段的键，如果是txt，csv则是数字，从0开始排，如果你不懂这个意思，就把数据文件发给我，我给你配置，20元一个</div>';
        }, '');
        $this->file('file', '数据文件')->uniqueName()->required()->accept('json,txt,csv')->autoUpload();
        $this->html(function () {
            return '';
        }, '<b>一、必选字段</b>');
        $this->text('key_content', '内容')->required()->help('支持图文')->default('content');
        $this->text('key_author_url', '作者链接')->required()->help('注意是作者链接，不是名字')->default('author_url');
        $this->html(function () {
            return '';
        }, '<b>一、其他字段</b>');
        $this->text('key_title', '标题')->help('txt,csv填数字，json填key')->default('title');
    }
}
